package custos;

import java.math.BigDecimal;
import java.math.RoundingMode;

import util.Operacao;
import util.Real;

public class ImpostoDeRenda {
	private BigDecimal aliquota;

	private ImpostoDeRenda(BigDecimal aliquota) {
		this.aliquota = aliquota;
	}

	private static final ImpostoDeRenda getImposto(Operacao operacao) {
		if (operacao.equals(Operacao.operacaoFinal))
			return new ImpostoDeRenda(new BigDecimal("0.15"));
		else
			return new ImpostoDeRenda(new BigDecimal("0.20"));
	}

	private final Real calcular(Real valor) {
		if (valor.doubleValue() > 0)
			return valor.multiply(aliquota);
		else
			return new Real("0.00");
	}

	public static final Real calcular(Real valor, Operacao operacao) {
		return getImposto(operacao).calcular(valor);
	}
}
